The present invention relates generally to tools that aid in the development of software applications and, more specifically, to tools that aid in the development of large scale enterprise applications.
Enterprise applications perform useful functions (such an expense reimbursement, or order fulfillment) in an enterprise. Software technologies (such as workflow programs, messaging systems, database programs, and Graphical User Interface (GUI) builders) have been developed that aid in the development of large-scale, enterprise-wide applications. These systems are helpful because they provide useful infrastructure and a rapid build time.
However, because such systems use diverse underlying software technologies, it is often very difficult for the system designer to visualize the enterprise process while at the same time visualize the user interface and the information accessible at each stage of the enterprise process.
Thus, there remains a need in the art to provide an efficient mechanism to visualize an enterprise process and also visualize the user interface and information accessible at each stage of the enterprise applications that rely on a set of diverse underlying software technologies.
In addition, in the event that a change is required in the enterprise application, the system designers must make the appropriate changes to each of the underlying software technologies to update the enterprise application. This may be a difficult, error-prone, time-consuming and expensive task if the change effects much of the underlying software technology that makes up the enterprise application.
Therefore, there is a need in the art to provide a system that provides for rapid integration of software technologies into an enterprise application, yet also provides for flexible and efficient updates to such enterprise applications.
The problems stated above and the related problems of the prior art are solved with the principles of the present invention, method and system for generating enterprise applications of a diversity of information technologies. An enterprise process model is generated that comprises a plurality of actors, actions performed by said actors, objects acted upon by said actions, and roles. Data characterizing the view of the attributes of at least one of the objects of the model is generated by associating a plurality of situation/role pairs with the at least one object; and then, for each particular situation/role pair, defining a view definition for the attributes of the at least one object based upon user input, and storing the view definition for subsequent use. Preferably, the view definition is stored as part of a model, and used by a code generation process to build program fragments that execute the enterprise application represented by the model.
Preferably, the view definition provides one or more of the following: i) an indication whether the attributes of the at least one object are to be displayed; ii) information that dictates how to render the attributes of the at least one object; iii) an indication whether the attributes of the at least one object are to be editable; and iv) information that dictates how to edit the attributes of the at least one object.
In another aspect of the present invention, an enterprise application for use in an information system that comprises diverse software services and hardware platforms is generated by generating a model of the enterprise process, wherein the model comprises a plurality of actors, actions performed by said actors, objects acted upon by said actions, and roles. A configuration defining software services and hardware platforms that support the model is generated. Finally, program fragments that support the model are generated. The program fragments are suitable for execution on hardware platforms defined by the configuration and use the software services defined by the configuration. Preferably, a set of templates that support these hardware platforms and software services are used to generate the program fragments. In addition, the model preferably includes a view definition for the attributes of at least one object of the enterprise process, wherein the view definition is generated via user input as described above.